Skip to content

[TrimmableTypeMap] Generator fixes: CRC64, override detection, JCW, manifest#11088

Closed
simonrozsival wants to merge 1 commit intomainfrom
dev/simonrozsival/trimmable-generator-fixes
Closed

[TrimmableTypeMap] Generator fixes: CRC64, override detection, JCW, manifest#11088
simonrozsival wants to merge 1 commit intomainfrom
dev/simonrozsival/trimmable-generator-fixes

Conversation

@simonrozsival
Copy link
Copy Markdown
Member

1/4 — Generator fixes for trimmable typemap

Depends on: nothing (targets main)

Changes

  • CRC64 fix: Use Jones algorithm (Crc64Helper) matching the runtime, not System.IO.Hashing.Crc64
  • Inherited override detection: Walk past DoNotGenerateAcw intermediate MCW base types
  • Instrumentation targetPackage: Pass package name for manifest instrumentation elements
  • JCW lazy registerNatives: App/Instrumentation types use deferred __md_registerNatives() helper
  • Backtick sanitization: Clean generic arity markers in proxy type names
  • NestedAssembly for UTF-8 helpers: Fix FieldAccessException from NestedPrivate
  • Manifest name promotion: Promote compat JNI names for manifest-rooted components
  • Deferred registration propagation: Propagate CannotRegisterInStaticConstructor to managed base types
  • Typed logger interface
  • Build targets and task updates

Tests

346/346 standalone typemap unit tests pass.

Part of the series: PR 1 → PR 2PR 3 → [PR 4](Test plumbing)

- Fix CRC64 algorithm (Jones instead of System.IO.Hashing)
- Fix inherited override detection (walk past DoNotGenerateAcw bases)
- Fix instrumentation targetPackage
- JCW lazy registerNatives for App/Instrumentation types
- Sanitize backtick in proxy names
- Manifest name promotion and deferred registration propagation
- Build targets and task updates
- Typed logger interface
- Unit test coverage

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@simonrozsival simonrozsival force-pushed the dev/simonrozsival/trimmable-generator-fixes branch from c624b1d to f01e508 Compare April 9, 2026 07:56
@simonrozsival
Copy link
Copy Markdown
Member Author

Superseded by the following 3-PR chain:

  1. #TBD — Typed logger interface (targets main)
  2. #TBD — Scanner + JCW fixes (targets PR 1)
  3. #TBD — Manifest rooting + deferred registration (targets PR 2)

The original PR carried duplicate build pipeline changes from #11036 and was cleaned up and split.

@simonrozsival
Copy link
Copy Markdown
Member Author

Superseded by the following 3-PR chain:

  1. [TrimmableTypeMap] Add typed logger interface #11095 — Typed logger interface (targets main)
  2. [TrimmableTypeMap] Scanner and JCW edge-case fixes #11096 — Scanner + JCW fixes (targets PR 1)
  3. [TrimmableTypeMap] Manifest rooting and deferred registration propagation #11097 — Manifest rooting + deferred registration (targets PR 2)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant